<?php

/**
 * @brief Klasa kontrolera index z modułu "admin"
 * 
 * Nie posiada, żadnego szczególnego zastosowania.
 * Taka "okładka" panelu administracyjnego.
 * Do przyszłego rozbudowania. 
 */
class Admin_IndexController extends Zend_Controller_Action
{
    
    protected $_user = null; /*!< Pole na dane użytkownia uzyskiwane z Zend_Auth */
    
    /**
     * @brief Standardowa metoda, której wykonanie poprzedza działanie akcji.
     * 
     * Przekazywany jest do niej widok nagłówka, pobierane są
     * wiadomości z flashMessengera oraz sprawdzane jest czy
     * użytkownik jest  zalogowany i uprawniony do dostępu do
     * akcji kontrolera.  
     * 
     */
    public function preDispatch() {
        $this->view->render('index/_headbox.phtml');
        
        //sprawdzamy czy użytkownik jest zalogowany
        $auth = Zend_Auth::getInstance();
        if($auth->hasIdentity()){
            $this->_user = $auth->getIdentity();
        } else {
            $this->_helper->flashMessenger->addMessage("warning/Zaloguj się!");
            $this->_helper->redirector('login','auth','default');
        }
        //sprawdzamy czy uzytkownik ma uprawnienia administratora
        $user = $auth->getIdentity();
        if($user->role != 'admin'){
            $this->_helper->flashMessenger->addMessage("warning/Nie masz wymaganych uprawnień!");
            $this->_helper->redirector('index','mymca','default'); 
        }
    }
    

    /**
     * @brief Metoda wyświetlająca ekran główny panelu administracyjnego.
     * 
     * Sprawdza, czy w słowniku statusów ofert, są właściwe wpisy i
     * uzupełnia je w razie czego. Nie istotne, jak poprawnie zainstalowano 
     * system aukcyjny.
     *  
     */
    public function indexAction()
    {
        // action body
        $offerStatusMapper = new Application_Model_OfferStatusMapper();
        $var = $offerStatusMapper->fetchAllStatuses();
        if(empty($var)){
            
        $offerStatusMapper->saveNewStatus('Otwarta');
        $offerStatusMapper->saveNewStatus('Zamknięta');
        }
    }
    
    
    /**
     * @brief Metoda wyświetlająca stopkę strony, po zakończeniu akcji.
     */
    public function postDispatch() {
        $this->view->render('index/_footbox.phtml');
    }

}

